<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="example-1">
        <!-- v-if & v-else -->
        <h1 v-if="awesome">Vue is awesome!</h1>
        <h1 v-else>Oh no 😢</h1>

        <!-- 
            因为 v-if 是一个指令，所以必须将它添加到一个元素上。
            如果想切换多个元素,可以把一个 <template> 元素当做不可见的包裹元素，并在上面使用 v-if。
            最终的渲染结果将不包含 <template> 元素。
         -->
        <template v-if="ok">
            <h1>Title</h1>
            <p>Paragraph 1</p>
            <p>Paragraph 2</p>
        </template>

        <!-- v-else-if -->
        <div v-if="type === 'A'">
            A
        </div>
        <div v-else-if="type === 'B'">
            B
        </div>
        <div v-else-if="type === 'C'">
            C
        </div>
        <div v-else>
            Not A/B/C
        </div>

        <!-- 用 key 管理可复用的元素 -->
        <!-- Vue 会尽可能高效地渲染元素，通常会复用已有元素而不是从头开始渲染。 -->
        <template v-if="loginType === 'username'">
            <label>Username</label>
            <input placeholder="Enter your username">
        </template>
        <template v-else>
            <label>Email</label>
            <input placeholder="Enter your email address">
        </template>
        <template v-if="loginType === 'username'">
            <label>Username</label>
            <input placeholder="Enter your username" key="username-input">
        </template>
        <template v-else>
            <label>Email</label>
            <input placeholder="Enter your email address" key="email-input">
        </template>
        <button @click="toggle">Toggle login type</button>

        <!-- v-show -->
        <h1 v-show="ok">Hello!</h1>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
        var example1 = new Vue({
            el: '#example-1',
            data: {
                type: '',
                awesome: true,
                ok: true,
                loginType: 'username'
            },
            methods: {
                toggle() {
                    this.loginType = this.loginType === 'email' ? 'username' : 'email';
                }
            }
        })
    </script>
</body>

</html>